<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  <title>Work diary on 2016 | Matrix207&#39;s Blog</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="description" content="2016-04-30
http://www.vimer.cn/2016/03/三省吾身.html
网络编程的细节问题，比如 epoll的水平和边缘触发、TIME_WAIT的原因与处理
什么redis可以做到10w/s的访问？网络层是怎么实现的？存储是怎么实现的？
服务器框架使用的是c++和python.
为什么用c++？因为连接层的gateway server要求性能非常高，所以我们使用c++和e">
<meta property="og:type" content="website">
<meta property="og:title" content="Work diary on 2016">
<meta property="og:url" content="http://yoursite.com/work_diary/2016.html">
<meta property="og:site_name" content="Matrix207's Blog">
<meta property="og:description" content="2016-04-30
http://www.vimer.cn/2016/03/三省吾身.html
网络编程的细节问题，比如 epoll的水平和边缘触发、TIME_WAIT的原因与处理
什么redis可以做到10w/s的访问？网络层是怎么实现的？存储是怎么实现的？
服务器框架使用的是c++和python.
为什么用c++？因为连接层的gateway server要求性能非常高，所以我们使用c++和e">
<meta property="og:updated_time" content="2016-07-16T16:04:43.000Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Work diary on 2016">
<meta name="twitter:description" content="2016-04-30
http://www.vimer.cn/2016/03/三省吾身.html
网络编程的细节问题，比如 epoll的水平和边缘触发、TIME_WAIT的原因与处理
什么redis可以做到10w/s的访问？网络层是怎么实现的？存储是怎么实现的？
服务器框架使用的是c++和python.
为什么用c++？因为连接层的gateway server要求性能非常高，所以我们使用c++和e">
  
    <link rel="alternate" href="/atom.xml" title="Matrix207&#39;s Blog" type="application/atom+xml">
  
  
    <link rel="icon" href="/favicon.png">
  
  
    <link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
  
  <link rel="stylesheet" href="/css/style.css">
  

</head>

<body>
  <div id="container">
    <div id="wrap">
      <header id="header">
  <div id="banner"></div>
  <div id="header-outer" class="outer">
    <div id="header-title" class="inner">
      <h1 id="logo-wrap">
        <a href="/" id="logo">Matrix207&#39;s Blog</a>
      </h1>
      
    </div>
    <div id="header-inner" class="inner">
      <nav id="main-nav">
        <a id="main-nav-toggle" class="nav-icon"></a>
        
          <a class="main-nav-link" href="/">Home</a>
        
          <a class="main-nav-link" href="/archives">Archives</a>
        
      </nav>
      <nav id="sub-nav">
        
          <a id="nav-rss-link" class="nav-icon" href="/atom.xml" title="Flux RSS"></a>
        
        <a id="nav-search-btn" class="nav-icon" title="Rechercher"></a>
      </nav>
      <div id="search-form-wrap">
        <form action="//google.com/search" method="get" accept-charset="UTF-8" class="search-form"><input type="search" name="q" results="0" class="search-form-input" placeholder="Search"><button type="submit" class="search-form-submit">&#xF002;</button><input type="hidden" name="sitesearch" value="http://yoursite.com"></form>
      </div>
    </div>
  </div>
</header>
      <div class="outer">
        <section id="main"><article id="post-undefined" class="article article-type-post" itemscope itemprop="blogPost">
  <div class="article-meta">
    <a href="/work_diary/2016.html" class="article-date">
  <time datetime="2016-07-16T16:04:43.000Z" itemprop="datePublished">2016-07-17</time>
</a>
    
  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="article-title" itemprop="name">
      Work diary on 2016
    </h1>
  

      </header>
    
    <div class="article-entry" itemprop="articleBody">
      
        <h4 id="2016-04-30"><a href="#2016-04-30" class="headerlink" title="2016-04-30"></a>2016-04-30</h4><ul>
<li><a href="http://www.vimer.cn/2016/03/三省吾身.html" target="_blank" rel="external">http://www.vimer.cn/2016/03/三省吾身.html</a><ul>
<li>网络编程的细节问题，比如 epoll的水平和边缘触发、<code>TIME_WAIT</code>的原因与处理</li>
<li>什么redis可以做到10w/s的访问？网络层是怎么实现的？存储是怎么实现的？</li>
<li>服务器框架使用的是c++和python.<ul>
<li>为什么用c++？因为连接层的gateway server要求性能非常高，所以我们使用c++和epoll来完成</li>
<li>那为什么又用python？因为业务层代码使用python开发会更快，并且业务层代码的瓶颈不在语言本身，而在于架构设计</li>
</ul>
</li>
</ul>
</li>
<li><a href="http://www.vimer.cn/2009/12/linux下进程绑定多cpu运行.html" target="_blank" rel="external">Linux下进程绑定多CPU运行</a></li>
</ul>
<h4 id="2016-04-27"><a href="#2016-04-27" class="headerlink" title="2016-04-27"></a>2016-04-27</h4><ul>
<li><a href="http://xinsuiyuer.github.io" target="_blank" rel="external">http://xinsuiyuer.github.io</a> 此博客有些文章可以看看复习下相关知识.</li>
<li><a href="http://xinsuiyuer.github.io/blog/2014/03/05/redis-anet/" target="_blank" rel="external">redis - anet 源码简析</a><ul>
<li><a href="https://github.com/dccmx/tcproxy" target="_blank" rel="external">https://github.com/dccmx/tcproxy</a></li>
</ul>
</li>
<li><a href="http://xinsuiyuer.github.io/blog/2014/02/24/jenkins-c-plus-plus-ci-env/" target="_blank" rel="external">jenkins 搭建 c++ 持续集成环境</a><ul>
<li>Clang Static Analyzer, CppCheck, OcLint 作为静态代码检查工具。</li>
<li>gcov 作为单元测试覆盖率统计工具。</li>
<li>CCM 作为代码复杂度度量工具。</li>
<li>CPD(Copy/Paste Detector) 作为代码重复检查工具。</li>
<li>Task Scanner 统计 FIXME, TODO等标签的数量。</li>
<li>Doxygen 作为接口文档的生成工具。</li>
</ul>
</li>
<li><code>MALLOC_CHECK_</code>使用<ul>
<li><a href="http://blog.csdn.net/macky0668/article/details/6839523" target="_blank" rel="external">http://blog.csdn.net/macky0668/article/details/6839523</a></li>
</ul>
</li>
<li><a href="http://www.yebangyu.org/blog/2016/02/01/detectmemoryghostinmultithread/" target="_blank" rel="external">http://www.yebangyu.org/blog/2016/02/01/detectmemoryghostinmultithread/</a></li>
<li><a href="http://www.cnblogs.com/djinmusic/archive/2013/02/04/2891753.html" target="_blank" rel="external">http://www.cnblogs.com/djinmusic/archive/2013/02/04/2891753.html</a></li>
</ul>
<h4 id="2016-04-19"><a href="#2016-04-19" class="headerlink" title="2016-04-19"></a>2016-04-19</h4><ul>
<li><a href="https://www.zybuluo.com/cmd/" target="_blank" rel="external">cmd markdown</a></li>
<li><a href="https://www.zhihu.com/question/19637157" target="_blank" rel="external">https://www.zhihu.com/question/19637157</a></li>
<li><a href="http://ibruce.info/2013/11/22/hexo-your-blog/" target="_blank" rel="external">http://ibruce.info/2013/11/22/hexo-your-blog/</a></li>
</ul>
<h4 id="2016-04-18"><a href="#2016-04-18" class="headerlink" title="2016-04-18"></a>2016-04-18</h4><ul>
<li>Move jekyll to Hexo</li>
</ul>
<h4 id="2016-04-07-周三，家，晴天"><a href="#2016-04-07-周三，家，晴天" class="headerlink" title="2016-04-07 周三，家，晴天"></a>2016-04-07 周三，家，晴天</h4><ul>
<li>study webbench source code<ul>
<li>upload source to git.oschina.net</li>
</ul>
</li>
<li>Maybe it is time move from Jekyll to Hexo<ul>
<li>ref <a href="http://ezlippi.com/blog/2016/02/jekyll-to-hexo.html" target="_blank" rel="external">http://ezlippi.com/blog/2016/02/jekyll-to-hexo.html</a></li>
</ul>
</li>
<li><a href="http://ezlippi.com/blog/2014/07/qualified-programmer-should-read-what-books.html" target="_blank" rel="external">一个合格的程序员应该读过的书</a></li>
<li><a href="http://www.ezlippi.com//blog/2014/12/c-open-project.html" target="_blank" rel="external">值得推荐的C/C++框架和库</a></li>
<li><a href="https://github.com/EZLippi?tab=repositories" target="_blank" rel="external">https://github.com/EZLippi?tab=repositories</a></li>
<li>Exvim: <a href="https://github.com/exvim/main" target="_blank" rel="external">https://github.com/exvim/main</a></li>
</ul>
<h4 id="2016-03-27-周日，家，晴天"><a href="#2016-03-27-周日，家，晴天" class="headerlink" title="2016-03-27 周日，家，晴天"></a>2016-03-27 周日，家，晴天</h4><ul>
<li>思考优化数据模型<ul>
<li>创建object时就根据节点书目，创建好所有的节点</li>
<li>创建object时就预先创建1个或N个节点(根据业务场景，大部分的更新操作需要的节点)<br>记录整颗树的节点数node_count, 后续如果需要继续操作节点且节点数超过了预分配的<br>节点数，就翻倍申请，最终节点数要取翻倍和node_count的最小值.</li>
</ul>
</li>
<li>数据模型提供了如下功能<ul>
<li>基本的编解码<ul>
<li>写操作：在客户端，用户通过节点给各层的节点的子段填充数据; 在服务端，提取<br>二级索引数据，更新二级索引表，最后把整个object写入存储空间。</li>
<li>更新操作: 在客户端，用户通过节点给相应的节点的子段填充数据; 在服务端，提取<br>原有数据，然后应用更新操作，汇入写操作流程。</li>
<li>读操作: 在客户端，通过key读取到数据后，解码数据，用户调用其他接口读取字段值.</li>
</ul>
</li>
</ul>
</li>
<li>性能热点与优化建议<ul>
<li>问题：写或更新操作存在大量的内存申请操作<ul>
<li>优化：根据业务场景，预先分配空间，如果数据量不大(比如少于1MB)，可以考虑直接<br>在栈上申请空间，如果数据量较大，就预先在堆上申请。</li>
</ul>
</li>
<li>问题：在编码的最后节点需要作内存调整和拼接<ul>
<li>优化：由于目前内部采用的是多个内存块保存数据，是否使用可以发送多块内存的RPC??</li>
</ul>
</li>
<li>问题：接口操作都先拿节点，然后再给字段填充数据. 造成要为每个节点申请内存，并且要保留。<ul>
<li>优化：如果用户的本意只想作因此字段赋值，后续不会再操作了，那么根本就不需要<br>给该节点申请并保留内存，只需要在栈上申请即可。</li>
</ul>
</li>
<li>问题：用户没法对多个字段填充数据<ul>
<li>优化：提供接口实现，但是如何高效的解析用户的多个字段数据呢? 既要友好也要解析高效.<br>比如 <code>set_multip_fields(object_t obj, const char* node_name, field_value_t* values, uint32_t count)</code><br>这样也兼容用户只想设置一个字段的情况。从性能上来说，只要用户一次把一个节点<br>的字段填充完毕，就不会带来性能上的问题. 而对于读操作，也可以使用同样的参数。</li>
<li>优化：对于数组节点，用户常用的操作有：追加一个节点，填充数据到相关字段上。<br>再添加一个节点，然后填充字段数据; 删除某个节点;修改某个节点的数据; 这是都使用<br>到同样的数组节点，这时，就要保留该节点，因为没有办法把所有操作揉合到一起.</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 id="2016-03-18"><a href="#2016-03-18" class="headerlink" title="2016-03-18"></a>2016-03-18</h4><ul>
<li><code>unordered_map</code><ul>
<li><a href="http://stackoverflow.com/questions/20649864/c-unordered-map-with-char-as-key" target="_blank" rel="external">C++ unordered_map with char* as key</a></li>
</ul>
</li>
</ul>
<h4 id="2016-03-17"><a href="#2016-03-17" class="headerlink" title="2016-03-17"></a>2016-03-17</h4><ul>
<li>optimize performance for data accesse<ul>
<li>change std::string to character of array</li>
<li>Not use STL containor, such as vector, string, map and so on.</li>
</ul>
</li>
</ul>
<h4 id="2016-02-27"><a href="#2016-02-27" class="headerlink" title="2016-02-27"></a>2016-02-27</h4><ul>
<li>upgrade jekyll 2.5 to 3.1.2<ul>
<li>因为github升级了jekyll，导致原来的语法高亮设置有问题，blog无法正常高亮。</li>
<li><code>gem update jekyll</code><ul>
<li>由于国内网络问题，不能直接使用官网的源进行升级，必须更换</li>
<li><code>gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/</code></li>
<li><a href="https://ruby.taobao.org/" target="_blank" rel="external">https://ruby.taobao.org/</a></li>
</ul>
</li>
</ul>
</li>
<li>git配置<ul>
<li>格式化与空白 </li>
<li><code>git config --global core.autocrlf true</code></li>
<li><code>git config --global core.autocrlf input</code> 告诉git在提交时把CRLF转换成LF</li>
<li><a href="http://iissnan.com/progit/html/zh/ch7_1.html" target="_blank" rel="external">http://iissnan.com/progit/html/zh/ch7_1.html</a></li>
</ul>
</li>
</ul>
<h4 id="2016-02-26"><a href="#2016-02-26" class="headerlink" title="2016-02-26"></a>2016-02-26</h4><ul>
<li>数据库项目新的接口函数实现</li>
</ul>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://yoursite.com/work_diary/2016.html" data-id="ciqpd87vh00ink0pvslb9jq1w" class="article-share-link">Partager</a>
      
      
    </footer>
  </div>
  
    
  
</article>

</section>
        
          <aside id="sidebar">
  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Catégories</h3>
    <div class="widget">
      <ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/blog/">blog</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/database/">database</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/english/">english</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/kernel/">kernel</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/language/">language</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/linux/">linux</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/math/">math</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/network/">network</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/others/">others</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/person/">person</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/program/">program</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/source/">source</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/storage/">storage</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/tools/">tools</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/windows/">windows</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Mot-clés</h3>
    <div class="widget">
      <ul class="tag-list"><li class="tag-list-item"><a class="tag-list-link" href="/tags/FAQ/">FAQ</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/IRC/">IRC</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Translation/">Translation</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/android/">android</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/api/">api</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/assembly/">assembly</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/awk/">awk</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/batch/">batch</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/blog/">blog</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/book/">book</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/c/">c</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/c/">c++</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/cache/">cache</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/crash/">crash</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/database/">database</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/debug/">debug</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/dot/">dot</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/driver/">driver</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/emacs/">emacs</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/exploit/">exploit</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/file-system/">file system</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/filesystem/">filesystem</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/flowchart/">flowchart</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/gcc/">gcc</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/git/">git</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/google/">google</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/graphviz/">graphviz</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/hexo/">hexo</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/hosts/">hosts</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/iscsi/">iscsi</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/java/">java</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/javascript/">javascript</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/job/">job</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/json/">json</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/kernel/">kernel</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/linux/">linux</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/lisp/">lisp</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/lua/">lua</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/makefile/">makefile</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/malloc/">malloc</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/math/">math</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/maxima/">maxima</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/memory/">memory</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/memory-overflow/">memory overflow</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/mtrace/">mtrace</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/netdisk/">netdisk</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/network/">network</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/others/">others</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/pandoc/">pandoc</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/performance/">performance</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/person/">person</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/protobuf/">protobuf</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/python/">python</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/rsync/">rsync</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/sed/">sed</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/shell/">shell</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/skype/">skype</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/sms/">sms</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/source/">source</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/ssh/">ssh</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/stack/">stack</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/storage/">storage</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/study/">study</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/svn/">svn</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/sync/">sync</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/test/">test</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/time/">time</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/tools/">tools</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/valgrind/">valgrind</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/vi/">vi</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/vim/">vim</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/virtual/">virtual</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/wget/">wget</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/windows/">windows</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/wireshark/">wireshark</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/write/">write</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/xml/">xml</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Nuage de mot-clés</h3>
    <div class="widget tagcloud">
      <a href="/tags/FAQ/" style="font-size: 10px;">FAQ</a> <a href="/tags/IRC/" style="font-size: 10px;">IRC</a> <a href="/tags/Translation/" style="font-size: 13px;">Translation</a> <a href="/tags/android/" style="font-size: 10px;">android</a> <a href="/tags/api/" style="font-size: 10px;">api</a> <a href="/tags/assembly/" style="font-size: 10px;">assembly</a> <a href="/tags/awk/" style="font-size: 11px;">awk</a> <a href="/tags/batch/" style="font-size: 14px;">batch</a> <a href="/tags/blog/" style="font-size: 10px;">blog</a> <a href="/tags/book/" style="font-size: 10px;">book</a> <a href="/tags/c/" style="font-size: 16px;">c</a> <a href="/tags/c/" style="font-size: 19px;">c++</a> <a href="/tags/cache/" style="font-size: 10px;">cache</a> <a href="/tags/crash/" style="font-size: 10px;">crash</a> <a href="/tags/database/" style="font-size: 17px;">database</a> <a href="/tags/debug/" style="font-size: 12px;">debug</a> <a href="/tags/dot/" style="font-size: 10px;">dot</a> <a href="/tags/driver/" style="font-size: 10px;">driver</a> <a href="/tags/emacs/" style="font-size: 11px;">emacs</a> <a href="/tags/exploit/" style="font-size: 10px;">exploit</a> <a href="/tags/file-system/" style="font-size: 10px;">file system</a> <a href="/tags/filesystem/" style="font-size: 12px;">filesystem</a> <a href="/tags/flowchart/" style="font-size: 10px;">flowchart</a> <a href="/tags/gcc/" style="font-size: 10px;">gcc</a> <a href="/tags/git/" style="font-size: 12px;">git</a> <a href="/tags/google/" style="font-size: 11px;">google</a> <a href="/tags/graphviz/" style="font-size: 11px;">graphviz</a> <a href="/tags/hexo/" style="font-size: 10px;">hexo</a> <a href="/tags/hosts/" style="font-size: 10px;">hosts</a> <a href="/tags/iscsi/" style="font-size: 14px;">iscsi</a> <a href="/tags/java/" style="font-size: 10px;">java</a> <a href="/tags/javascript/" style="font-size: 10px;">javascript</a> <a href="/tags/job/" style="font-size: 10px;">job</a> <a href="/tags/json/" style="font-size: 10px;">json</a> <a href="/tags/kernel/" style="font-size: 14px;">kernel</a> <a href="/tags/linux/" style="font-size: 14px;">linux</a> <a href="/tags/lisp/" style="font-size: 10px;">lisp</a> <a href="/tags/lua/" style="font-size: 10px;">lua</a> <a href="/tags/makefile/" style="font-size: 10px;">makefile</a> <a href="/tags/malloc/" style="font-size: 10px;">malloc</a> <a href="/tags/math/" style="font-size: 11px;">math</a> <a href="/tags/maxima/" style="font-size: 10px;">maxima</a> <a href="/tags/memory/" style="font-size: 11px;">memory</a> <a href="/tags/memory-overflow/" style="font-size: 10px;">memory overflow</a> <a href="/tags/mtrace/" style="font-size: 10px;">mtrace</a> <a href="/tags/netdisk/" style="font-size: 10px;">netdisk</a> <a href="/tags/network/" style="font-size: 20px;">network</a> <a href="/tags/others/" style="font-size: 18px;">others</a> <a href="/tags/pandoc/" style="font-size: 10px;">pandoc</a> <a href="/tags/performance/" style="font-size: 16px;">performance</a> <a href="/tags/person/" style="font-size: 11px;">person</a> <a href="/tags/protobuf/" style="font-size: 11px;">protobuf</a> <a href="/tags/python/" style="font-size: 10px;">python</a> <a href="/tags/rsync/" style="font-size: 10px;">rsync</a> <a href="/tags/sed/" style="font-size: 11px;">sed</a> <a href="/tags/shell/" style="font-size: 15px;">shell</a> <a href="/tags/skype/" style="font-size: 11px;">skype</a> <a href="/tags/sms/" style="font-size: 10px;">sms</a> <a href="/tags/source/" style="font-size: 11px;">source</a> <a href="/tags/ssh/" style="font-size: 10px;">ssh</a> <a href="/tags/stack/" style="font-size: 10px;">stack</a> <a href="/tags/storage/" style="font-size: 15px;">storage</a> <a href="/tags/study/" style="font-size: 10px;">study</a> <a href="/tags/svn/" style="font-size: 11px;">svn</a> <a href="/tags/sync/" style="font-size: 10px;">sync</a> <a href="/tags/test/" style="font-size: 11px;">test</a> <a href="/tags/time/" style="font-size: 10px;">time</a> <a href="/tags/tools/" style="font-size: 16px;">tools</a> <a href="/tags/valgrind/" style="font-size: 10px;">valgrind</a> <a href="/tags/vi/" style="font-size: 10px;">vi</a> <a href="/tags/vim/" style="font-size: 14px;">vim</a> <a href="/tags/virtual/" style="font-size: 11px;">virtual</a> <a href="/tags/wget/" style="font-size: 10px;">wget</a> <a href="/tags/windows/" style="font-size: 11px;">windows</a> <a href="/tags/wireshark/" style="font-size: 10px;">wireshark</a> <a href="/tags/write/" style="font-size: 13px;">write</a> <a href="/tags/xml/" style="font-size: 10px;">xml</a>
    </div>
  </div>

  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Archives</h3>
    <div class="widget">
      <ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/07/">July 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/04/">April 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/03/">March 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/02/">February 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/01/">January 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/11/">November 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/10/">October 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/09/">September 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/08/">August 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/07/">July 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/06/">June 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/03/">March 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/02/">February 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/01/">January 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/12/">December 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/11/">November 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/09/">September 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/08/">August 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/07/">July 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/06/">June 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/05/">May 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/04/">April 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/03/">March 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/11/">November 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/10/">October 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/09/">September 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/08/">August 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/07/">July 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/06/">June 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/05/">May 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/04/">April 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/03/">March 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/02/">February 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/01/">January 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2012/12/">December 2012</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2012/09/">September 2012</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Articles récents</h3>
    <div class="widget">
      <ul>
        
          <li>
            <a href="/2016/07/17/how-to-implement-malloc/">如何实现一个malloc</a>
          </li>
        
          <li>
            <a href="/2016/07/17/study-grep-more/">grep工作原理</a>
          </li>
        
          <li>
            <a href="/2016/07/17/2016-04-13-malloc/">malloc</a>
          </li>
        
          <li>
            <a href="/2016/04/27/include-what-you-use/">使用IWYU整理头文件引用</a>
          </li>
        
          <li>
            <a href="/2016/04/24/understand-gcc-assembly-output/">understand gcc assembly output</a>
          </li>
        
      </ul>
    </div>
  </div>

  
</aside>
        
      </div>
      <footer id="footer">
  
  <div class="outer">
    <div id="footer-info" class="inner">
      &copy; 2016 Matrix207<br>
      Propulsé by <a href="http://hexo.io/" target="_blank">Hexo</a>
    </div>
  </div>
</footer>
    </div>
    <nav id="mobile-nav">
  
    <a href="/" class="mobile-nav-link">Home</a>
  
    <a href="/archives" class="mobile-nav-link">Archives</a>
  
</nav>
    

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>


  <link rel="stylesheet" href="/fancybox/jquery.fancybox.css">
  <script src="/fancybox/jquery.fancybox.pack.js"></script>


<script src="/js/script.js"></script>

  </div>
</body>
</html>